// Use this when the unmanaged API expects the structure passed by-value,
// or if you want to pass it by-reference as a pointer to a structure
struct NETRESOURCE
{
public int dwScope;
public int dwType;
public int dwDisplayType;
public int dwUsage;
public string LocalName;
public string RemoteName;
public string Comment;
public string Provider;
}
// Use this when you want to pass it by-value even though the unmanaged API expects
// a pointer to a structure. Being a class adds an extra level of indirection
[StructLayout(LayoutKind.Sequential)]
class NETRESOURCE
{
public int dwScope;
public int dwType;
public int dwDisplayType;
public int dwUsage;
public string LocalName;
public string RemoteName;
public string Comment;
public string Provider;
}
' Use this when the unmanaged API expects the structure passed by-value, or
' if you want to pass it by-reference as a pointer to a structure.
Public Structure NETRESOURCE
Public dwScope As Integer
Public dwType As Integer
Public dwDisplayType As Integer
Public dwUsage As Integer
Public LocalName As String
Public RemoteName As String
Public Comment As String
Public Provider As String
End Structure
Without the Structlayout the WNetAddConnection2 does not work !!!
This is defined as a class rather than a structure, so it's only appropriate for passing (by-value) when a pointer to a structure is needed.